package src

import (
	"github.com/gofiber/fiber/v2"
)

type User struct {
	ID   int    `json:"id"`
	Name string `json:"name"`
}

func main1() {
	app := fiber.New()

	// GET /api/users
	app.Get("/api/users", func(c *fiber.Ctx) error {
		users := []User{
			{ID: 1, Name: "Alice"},
			{ID: 2, Name: "Bob"},
		}
		return c.JSON(users)
	})

	// GET /api/user/:id
	app.Get("/api/user/:id", func(c *fiber.Ctx) error {
		id := c.Params("id")
		return c.JSON(User{
			ID:   1,
			Name: "User " + id,
		})
	})

	app.Post("/api/user", func(c *fiber.Ctx) error {
		var user User
		if err := c.BodyParser(&user); err != nil {
			return c.Status(400).SendString("Invalid request body")
		}
		// 模拟保存数据库
		user.ID = 999
		return c.JSON(user)
	})

	// 日志中间件
	app.Use(func(c *fiber.Ctx) error {
		println("请求路径:", c.Path(), c.Params("id"))
		return c.Next()
	})

	app.Listen(":3000")
}
